
import 'package:kq_flutter_core_widget/utils/str_util.dart';

///合并执行状态持有
class Monitor {
  dynamic extra;
  bool _isStart = false;
  bool _isFinish = false;
  bool _isError = false;

  Monitor({this.extra});

  ///该方法接口开始调用时调用
  @Deprecated("只需要监听完成，不需要监听开始，创建即开始")
  onStart() {
    _isStart = true;
  }

  ///该方法接口调用完成时调用
  onFinish() {
    _isFinish = true;
  }

  ///该方法接口出错或者请求失败时调用
  onError() {
    _isError = true;
  }

  ///该接口是否已开始调用
  @Deprecated("只需要监听完成，不需要监听开始，创建即开始")
  bool isStart() {
    return _isStart;
  }

  ///该接口是否已完成调用
  bool isFinish() {
    return _isFinish;
  }

  ///该接口是否调用出错
  bool isError() {
    return _isError;
  }

  ///获取额外数据
  T? getExtra<T>() {
    return StrUtil.getValue(extra);
  }

  ///重置，以便复用
  reset() {
    _isStart = false;
    _isFinish = false;
    _isError = false;
  }
}
